using System;
using System.Collections.Generic;

using MvcCms.Data;

namespace MvcCmsSocial.Data
{
    public interface ISocialRepository
    {
        SocialImage GetProfilePic(Guid userId);
        DTOSocialMessage CreateSocialMessage(SocialMessage socialMessageToCreate);
        SocialMessage EditSocialMessage(SocialMessage socialMessageToEdit);
        IEnumerable<SocialMessage> ListSocialMessages(Guid toUserId);
        void DeleteSocialMessage(SocialMessage socialMessageToDelete);
        SocialMessage GetSocialMessage(int messageId);
        IEnumerable<DTOSocialMessage> ListSocialMessageReplies(int parentMessageId);
        SocialLike CreateSocialLike(SocialLike socialLikeToCreate);
        SocialImage CreateSocialImage(SocialImage socialImageToCreate);
        SocialImage EditSocialImage(SocialImage socialImageToEdit);
        SocialImage GetSocialImage(string imageName, Guid userId);
        SocialImage GetSocialImage(string imageName);
        IEnumerable<SocialImage> ListSocialImages(Guid userId);
        void DeleteSocialImage(SocialImage socialImageToDelete);

        User GetUser(string userName);

        SocialData GetSocialData(Guid userId);
        SocialData CreateSocialData(SocialData socialDataToCreate);
        SocialData EditSocialData(SocialData socialDataToEdit);
    }
}